from django import template
register = template.Library()
from myadmin.models import Cates
from django.core.urlresolvers import reverse
from django.utils.html import format_html

#自定义标签
@register.simple_tag
def showpage(count,request):


    #获取请求中的参数(搜索框)
    # &types=all&keywords=wu
    args = ''
    if request.GET.get('types'):
        args = '&types=' + request.GET.get('types') + '&keyword=' + request.GET.get('keyword')
        #print(args)

    #获取当前的页码  默认是1
    p=int(request.GET.get('page',1))
    print(p)
    #获取当前页码数 -5
    start=p-5
    #获取当前页码数+4
    end=p+4
    #得到最终的结果 1 2 3 4 5 6 7 8 9 10

    #判断当前也如果小于5
    if p<=5:
        #开始页=1 结束页=10
        start=1
        end=10
    #判断如果p大于总页数-5  例如 96页>100页-5
    if p>count-5:
        #开始页码=总页码-9
        start=count-9
        #结束页码=总页码
        end=count

    #判断如果总页码小于10
    if count<10:
        #设定开始位置为1 结束位置为最大值
        start=1
        end=count

    #空字符串 用来存放循环出来的结果
    pagehtml=''

    #首页的超链接
    pagehtml += '<li><a href="?page=1{args}">首页</a></li>'.format(args=args)

    # 上一页超链接  判断如果当前页大于1
    if p>1:
        pagehtml+='<li><a href="?page={p}{args}">上一页</a></li>'.format(p=p-1,args=args)

    #遍历出 从开始 到结束的所有页 (正序列超链接 1 2 3 4 5 6 7 8 9)
    for i in range(start,end+1):
        #pagehtml+=str(i)
        #判断是否是当前页 如果是的话 加入高亮style
        if p==i:
            pagehtml += '<li class="am-active"><a href="?page={p}{args}">{p}</a></li>'.format(p=i,args=args)
        else:
            pagehtml+= '<li><a href="?page={p}{args}">{p}</a></li>'.format(p=i,args=args)

    #尾部页面超链接
    if p<count:
        pagehtml += '<li><a href="?page={p}{args}">尾页</a></li>'.format(p=count,args=args)
    print(pagehtml)
    return format_html(pagehtml)

@register.simple_tag
def nvatag():
    data=Cates.objects.filter(pid=0)
    s=""
    for i in data:
       s+="""<li class="layout-header-nav-item">
          <a href="{url}?id={id}" class="layout-header-nav-link">{name}</a>
        </li>""".format(name=i.name,url=reverse("list"),args=(i.id,),id=i.id)
    #print(s)
    return format_html(s)

@register.simple_tag
def cheng(x,y):
    return x*y
